package 双指针;

import java.util.Scanner;

public class test4 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int[] nums = new int[n];
        for (int i = 0; i < n; i++) {
            nums[i] = in.nextInt();
        }
        test4 test4 = new test4();
        int i = test4.maxArea(nums);//实例化
        System.out.println(i);
    }

    public int maxArea(int[] nums){
        // 两边不停缩小,一直找最优解决 --> 即那一边小就移动那一边
        // 体积决定与小的那一边,如果移动大的那一边高度不会超过小的那一边
        // 所以只能移动小的,这样才有机会让原本大的那一条边成为小的
        int left=0,right= nums.length-1;
        int max = Integer.MIN_VALUE;
        while (left<right){
            int h = right-left;
            int flag = 0;
            if(nums[left]>nums[right]){
                flag = h*nums[right];
                right--;
            }else {
                flag = h*nums[left];
                left++;
            }
            max = Math.max(flag,max);
        }
        return max;
    }
}
